教程 12:脚本报表导出 | 您所在的位置:网站首页 › cityengine cga规则下载 › 教程 12:脚本报表导出 |
报告变换数据资产标识符 报告规则参数资产。 ## report asset identifier report("asset", asset) 缩放在大多数情况下,您需要一个与原始资产大小相对应的范围。 您不能仅报告范围大小,必须将其除以资产大小。 您可以使用 assetInfo() 命令查询原始资产大小;例如,assetInfo(asset, "sx") 可查询在 x 轴的大小。 因此,该范围的报告命令为: ## report scale values relative to asset report("xscale", scope.sx/assetInfo(asset, "sx")) report("yscale", scope.sy/assetInfo(asset, "sy")) report("zscale", scope.sz/assetInfo(asset, "sz")) 旋转要报告世界坐标中的旋转,您必须使用 convert() 命令在 CityEngine 中转换枢轴旋转: ## report rotation in world coords report("xrot", convert(x, pivot, world, orient, 0,0,0)) report("yrot", convert(y, pivot, world, orient, 0,0,0)) report("zrot", convert(z, pivot, world, orient, 0,0,0)) 位置位置是最复杂的部分。 为了能够在您的后续应用程序中正确地实例化您的资产,重要的是要注意所使用资产的枢轴和位置。 在本例中,资产的枢轴位于地平面的中心,并且位于世界原点上。 请参阅下方的 Maya 屏幕截图: 在报告位置之前修改资产范围,将其缩放为一个很小的针 并以 x 和 z 作为中心。 这样,即可确保所报告的位置与 Maya 中资产的枢轴相对应。 ## scale and center scope s(0.0001,'1,0.0001) center(xz)同样,必须将该位置转换为世界坐标: ## report position in world coords report("xpos", convert(x, scope, world, pos, 0,0,0)) report("ypos", convert(y, scope, world, pos, 0,0,0)) report("zpos", convert(z, scope, world, pos, 0,0,0))现在,您已经报告了全部的所需值。 为了确保视窗中不会显示不需要的几何,请在报表规则的末尾添加一个 NIL 命令。 最终的报表规则如下所示: InstanceReport(asset) --> ## report instance ID report("asset", asset) ## report scale values relative to asset report("xscale", scope.sx/assetInfo(asset, "sx")) report("yscale", scope.sy/assetInfo(asset, "sy")) report("zscale", scope.sz/assetInfo(asset, "sz")) ## report rotation in world coords report("xrot", convert(x, pivot, world, orient, 0,0,0)) report("yrot", convert(y, pivot, world, orient, 0,0,0)) report("zrot", convert(z, pivot, world, orient, 0,0,0)) ## scale and center scope s(0.001,'1,0.001) center(xz) ## report position in world coords report("xpos", convert(x, scope, world, pos, 0,0,0)) report("ypos", convert(y, scope, world, pos, 0,0,0)) report("zpos", convert(z, scope, world, pos, 0,0,0)) NIL 使用报表规则接下来,您将返回到原始的 CGA 规则文件,并使用准备好的报表规则。 在文件 instance_city_01.cga 的开头添加以下行,以导入准备好的 ID 为 instanceReporting 的报表规则文件: import instanceReporting:"instanceReporting.cga"将 InstanceReport 规则添加到建筑物规则的末尾。 请确保在插入命令后添加 Asset. 叶规则,以确保生产资产。 Building(asset) --> s('1,0,'1) i(asset) Asset. instanceReporting.InstanceReport(asset)生成建筑物,并查看检查器窗口的报表窗格,该窗格应该与以下示例类似: |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |